package com.example.domain.strategy.service.armory;

/**
 * @Author: 三石
 * @desc: 策略抽奖调度
 * @Date: 2024-04-20-14:36
 */
public interface IStrategyDispatch {

    /** 随机获取查找表中获取抽奖奖品ID -> 没有装配权重的情况 */
    Long getRandomAwardId(Long strategyId);

    /** 随机获取查找表中获取抽奖奖品ID -> 装配权重的情况*/
    Long getRandomAwardId(Long strategyId, String ruleWeightValue);

    /**
     * 根据策略ID和奖品ID，扣减奖品缓存库存
     *
     * @param strategyId 策略ID
     * @param awardId    奖品ID
     * @return 扣减结果
     */
    Boolean subtractionAwardStock(Long strategyId, Long awardId);

}
